<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>添加事件的几种方式</title>
    <style>
        #one{
            width: 100px;
            height: 100px;
            background: lightcoral;
        }
        #two{
            width: 100px;
            height: 100px;
            background: lightgreen;
        }
        #three{
            width: 100px;
            height: 100px;
            background: lightblue;
        }
    </style>
</head>
<body>
    <!-- 第一种方式：直接在标签上通过onclick属性添加事件 -->
    <div id="one" onclick="one(this)"></div>
    <div id="two"></div>
    <div id="three"></div>
    <script>
        function one(a){
            console.log(a); 
            console.log(this.event);
            alert('这里是one')
        }
        // 第二种方式：通过js获取dom对象，给dom对象添加事件
        two.onclick = function(e){
            console.log(this);
            console.log(e);
            alert('这里是two')
        }
        // onclick方式添加事件，后面会将前面的覆盖掉
        two.onclick = function(){
            alert('哈哈')
        }
        // 第三种方式：通过js获取dom对象，给dom对象添加事件监听
        let fn1 = function(){
            alert('这里是three')
        }
        three.addEventListener("click",fn1)
        // 添加事件监听的方式，会累加事件行为
        let fn2 = function(){
            alert('呵呵')
        }
        three.addEventListener("click",fn2)
        // 移除事件监听
        three.removeEventListener('click',fn1)
    </script>
</body>
</html>